package com.itheima.service;

import cn.hutool.core.convert.Convert;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.itheima.excption.MyException;
import com.itheima.pojo.SmsFlashPromotion;
import com.itheima.vo.PageResultVo;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.stereotype.Service;

@Service
public class SmsFlashPromotionService {

    @DubboReference
    private SmsFlashPromotionApi smsFlashPromotionApi;
    /**
     * 添加活动
     * @param
     */
    public void create(SmsFlashPromotion smsFlashPromotion) {
        Boolean flag = smsFlashPromotionApi.create(smsFlashPromotion);
        if (!flag) {
            //名称重复
            throw new MyException("秒杀活动已存在,添加失败");
        }
    }

    /**
     * 删除活动
     * @param id
     */
    public void delete(Integer id) {
        smsFlashPromotionApi.delete(id);
    }

    /**
     * 分页模糊查询
     * @param pageNum
     * @param pageSize
     * @param keyword
     * @return
     */
    public PageResultVo<SmsFlashPromotion> list(Integer pageNum, Integer pageSize, String keyword) {
        IPage<SmsFlashPromotion> page = smsFlashPromotionApi.list(pageNum,pageSize,keyword);
        PageResultVo<SmsFlashPromotion> pageResultVo = new PageResultVo<>();
        pageResultVo.setList(page.getRecords());
        pageResultVo.setPageNum(pageNum);
        pageResultVo.setPageSize(pageSize);
        pageResultVo.setTotal(Convert.toInt(page.getTotal()));
        pageResultVo.setTotalPages(Convert.toInt(page.getPages()));
        return pageResultVo;
    }
    /**
     * 修改上下线状态
     * @param id
     * @param status
     * @return
     */
    public void status(Integer id, Integer status) {
        smsFlashPromotionApi.status(id,status);
    }
    /**
     * 编辑活动
     * @param id
     * @param
     * @return
     */
    public void update(Integer id, SmsFlashPromotion smsFlashPromotion) {
        smsFlashPromotionApi.update(id,smsFlashPromotion);
    }

    /**
     * 获取活动详情
     * @param id
     * @return
     */
    public SmsFlashPromotion findById(Integer id) {
       return smsFlashPromotionApi.findById(id);
    }
}
